{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['',\n",
       " '/Users/wuzhong/gitee/text-classify-course/notebook',\n",
       " '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',\n",
       " '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7',\n",
       " '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',\n",
       " '/usr/local/lib/python3.7/site-packages',\n",
       " '/usr/local/lib/python3.7/site-packages/IPython/extensions',\n",
       " '/Users/wuzhong/.ipython',\n",
       " '../',\n",
       " '/Users/wuzhong/gitee/text-classify-course']"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import sys\n",
    "sys.path.append(\"../\")\n",
    "sys.path.append(\"/Users/wuzhong/gitee/text-classify-course\")\n",
    "sys.path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['',\n",
       " '/Users/wuzhong/gitee/text-classify-course/notebook',\n",
       " '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python37.zip',\n",
       " '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7',\n",
       " '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload',\n",
       " '/usr/local/lib/python3.7/site-packages',\n",
       " '/usr/local/lib/python3.7/site-packages/IPython/extensions',\n",
       " '/Users/wuzhong/.ipython',\n",
       " '../',\n",
       " '../',\n",
       " '/Users/wuzhong/gitee/text-classify-course']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sys\n",
    "sys.path.append(\"/Users/wuzhong/gitee/text-classify-course\")\n",
    "\n",
    "sys.path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Loading model from cache /var/folders/7w/2zfqy3d94l5fc7ckfvzphnbw0000gp/T/jieba.cache\n",
      "Loading model cost 0.943 seconds.\n",
      "Prefix dict has been built succesfully.\n"
     ]
    }
   ],
   "source": [
    "import src.core.PandasUtils as pandasutils\n",
    "import src.core.tf_idf as tfidf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def save_model(lr, path):\n",
    "    from sklearn.externals import joblib\n",
    "    joblib.dump(lr, path)\n",
    "\n",
    "\n",
    "def load_model(path):\n",
    "    from sklearn.externals import joblib\n",
    "    return joblib.load(path)\n",
    "\n",
    "\n",
    "def model_exist(path):\n",
    "    import os\n",
    "    return os.path.exists(path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = pd.read_csv(\"../data/training.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "data.columns = [\"type\",\"text\"]\n",
    "data[\"type\"] = data[\"type\"]. map(lambda s: int(s) - 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>type</th>\n",
       "      <th>text</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>公司的主营业务为向中小微企业、个体工商户、农户等客户提供贷款服务，自设立以来主营业务未发生过变化。</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>公司立足于商业地产服务，致力于为商业地产开发、销售、运营全产业链提供一整套增值服务，业务覆盖...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>公司经工商管理部门核准的经营范围为“投资咨询、经济信息咨询，企业管理咨询，品牌推广策划，公共...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>该公司的主营业务为在中国境内(港、澳、台除外)开展保险代理销售，依托于自身的产品研究能力和专...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>公司主营业务为地铁商业物业的租赁与运营管理服务。公司以整体租赁的方式取得轨道交通站点附属建筑...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   type                                               text\n",
       "0     1  公司的主营业务为向中小微企业、个体工商户、农户等客户提供贷款服务，自设立以来主营业务未发生过变化。\n",
       "1     0  公司立足于商业地产服务，致力于为商业地产开发、销售、运营全产业链提供一整套增值服务，业务覆盖...\n",
       "2     1  公司经工商管理部门核准的经营范围为“投资咨询、经济信息咨询，企业管理咨询，品牌推广策划，公共...\n",
       "3     1  该公司的主营业务为在中国境内(港、澳、台除外)开展保险代理销售，依托于自身的产品研究能力和专...\n",
       "4     0  公司主营业务为地铁商业物业的租赁与运营管理服务。公司以整体租赁的方式取得轨道交通站点附属建筑..."
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "load model from  ../dist/train_data_full.pkl\n",
      "       0%  0.00%  0.03%  0.05  0.1  0.12%  0.315  0.32%  0.4  0.5 ...   龟苓膏  \\\n",
      "0     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "1     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "2     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "3     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "5     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "6     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "7     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "8     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "9     0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "10    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "11    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "12    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "13    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "14    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "15    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "16    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "17    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "18    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "19    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "20    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "21    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "22    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "23    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "24    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "25    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "26    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "27    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "28    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "29    0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "...   ...    ...    ...   ...  ...    ...    ...    ...  ...  ... ...   ...   \n",
      "4743  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4744  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4745  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4746  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4747  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4748  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4749  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4750  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4751  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4752  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4753  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4754  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4755  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4756  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4757  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4758  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4759  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4760  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4761  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4762  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4763  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4764  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4765  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4766  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4767  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4768  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4769  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4770  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4771  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "4772  0.0    0.0    0.0   0.0  0.0    0.0    0.0    0.0  0.0  0.0 ...   0.0   \n",
      "\n",
      "            ﹑    ﹒    ﹝    ﹞    Ｍ    Ｐ    Ｓ    ､  \n",
      "0     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "1     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "2     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "3     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "5     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "6     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "7     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "8     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "9     0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "10    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "11    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "12    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "13    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "14    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "15    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "16    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "17    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "18    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "19    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "20    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "21    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "22    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "23    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "24    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "25    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "26    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "27    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "28    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "29    0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "...   ...  ...  ...  ...  ...  ...  ...  ...  ...  \n",
      "4743  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4744  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4745  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4746  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4747  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4748  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4749  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4750  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4751  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4752  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4753  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4754  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4755  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4756  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4757  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4758  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4759  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4760  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4761  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4762  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4763  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4764  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4765  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4766  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4767  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4768  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4769  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4770  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4771  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "4772  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  \n",
      "\n",
      "[4773 rows x 36113 columns]\n",
      "[1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 2, 3, 5, 2, 5, 2, 2, 7, 2, 3, 3, 2, 10, 2, 2, 3, 2, 2, 9, 2, 5, 2, 2, 4, 6, 3, 7, 10, 7, 5, 2, 5, 2, 5, 3, 2, 9, 5, 2, 2, 6, 2, 3, 5, 7, 5, 3, 5, 5, 3, 6, 3, 10, 6, 2, 2, 2, 2, 5, 3, 3, 2, 5, 3, 9, 5, 2, 3, 3, 2, 9, 2, 8, 3, 7, 2, 3, 3, 2, 9, 3, 5, 2, 2, 2, 5, 3, 5, 5, 2, 4, 2, 6, 5, 3, 3, 2, 7, 2, 3, 5, 2, 5, 9, 2, 2, 7, 3, 3, 2, 3, 6, 8, 7, 6, 6, 3, 2, 2, 2, 3, 5, 5, 2, 3, 6, 3, 5, 5, 4, 6, 2, 5, 6, 2, 5, 5, 2, 5, 3, 5, 2, 4, 8, 6, 4, 3, 5, 2, 2, 3, 2, 2, 3, 5, 2, 3, 2, 2, 2, 2, 3, 2, 9, 2, 3, 2, 3, 5, 6, 5, 5, 2, 3, 5, 2, 5, 3, 3, 3, 3, 8, 3, 7, 5, 8, 8, 5, 5, 9, 5, 3, 2, 5, 3, 6, 2, 4, 3, 5, 6, 10, 8, 3, 6, 9, 3, 3, 4, 3, 2, 5, 2, 4, 9, 3, 3, 2, 5, 2, 8, 2, 2, 5, 5, 3, 3, 2, 7, 5, 2, 3, 7, 3, 3, 8, 9, 5, 3, 4, 2, 3, 2, 4, 2, 7, 2, 3, 5, 3, 5, 3, 2, 5, 2, 3, 2, 9, 5, 2, 5, 3, 5, 3, 4, 8, 2, 9, 2, 3, 9, 3, 3, 5, 3, 3, 5, 5, 5, 3, 2, 4, 2, 2, 7, 2, 2, 6, 3, 2, 3, 4, 3, 2, 3, 3, 3, 2, 6, 2, 8, 3, 6, 6, 2, 9, 6, 3, 6, 5, 5, 3, 3, 3, 6, 3, 2, 3, 5, 5, 5, 5, 2, 5, 5, 3, 3, 2, 2, 5, 3, 3, 9, 8, 3, 3, 2, 5, 3, 3, 2, 2, 6, 3, 4, 6, 9, 6, 5, 2, 2, 3, 3, 3, 4, 8, 9, 3, 3, 2, 6, 6, 2, 5, 3, 5, 3, 2, 2, 7, 2, 4, 6, 2, 3, 3, 5, 2, 5, 3, 3, 2, 7, 2, 2, 4, 5, 2, 2, 2, 2, 3, 3, 2, 3, 6, 10, 4, 8, 5, 7, 2, 5, 2, 6, 3, 2, 10, 5, 5, 5, 5, 3, 7, 6, 5, 9, 5, 5, 3, 3, 3, 5, 6, 4, 2, 2, 4, 3, 3, 9, 10, 3, 3, 10, 3, 3, 2, 3, 5, 2, 8, 5, 5, 7, 3, 5, 3, 4, 2, 4, 2, 6, 9, 4, 9, 5, 5, 9, 2, 2, 3, 6, 2, 10, 6, 5, 5, 9, 5, 2, 10, 3, 5, 3, 4, 2, 3, 6, 2, 3, 2, 8, 3, 3, 2, 4, 3, 5, 8, 5, 5, 6, 3, 2, 3, 3, 7, 3, 6, 3, 3, 4, 2, 3, 6, 3, 2, 5, 3, 5, 6, 2, 5, 2, 2, 3, 4, 3, 4, 3, 9, 2, 6, 2, 3, 3, 9, 3, 5, 2, 3, 5, 5, 2, 2, 5, 3, 2, 3, 2, 3, 7, 3, 8, 3, 8, 10, 6, 3, 5, 6, 7, 6, 2, 2, 3, 2, 9, 2, 3, 7, 7, 2, 2, 9, 3, 6, 9, 2, 2, 4, 2, 4, 7, 3, 5, 5, 5, 5, 3, 3, 3, 2, 4, 3, 2, 3, 2, 2, 7, 3, 2, 3, 2, 3, 2, 5, 2, 2, 2, 10, 3, 6, 5, 2, 9, 6, 5, 3, 5, 10, 5, 5, 5, 3, 5, 2, 6, 3, 5, 7, 5, 2, 3, 10, 3, 2, 3, 3, 10, 2, 3, 7, 3, 3, 3, 2, 2, 2, 9, 3, 4, 10, 4, 2, 8, 3, 4, 5, 5, 5, 3, 9, 2, 2, 7, 2, 7, 2, 2, 3, 2, 3, 10, 8, 2, 3, 9, 5, 3, 5, 4, 5, 9, 6, 6, 3, 7, 2, 8, 9, 3, 3, 5, 2, 8, 5, 2, 4, 6, 2, 2, 2, 5, 5, 2, 3, 5, 5, 2, 2, 2, 2, 5, 5, 5, 3, 5, 8, 2, 5, 2, 3, 5, 2, 5, 2, 5, 3, 4, 7, 2, 3, 5, 3, 2, 2, 4, 5, 2, 3, 7, 3, 2, 5, 2, 5, 3, 2, 2, 2, 2, 2, 4, 2, 3, 2, 3, 3, 2, 2, 2, 5, 5, 2, 3, 2, 3, 2, 7, 2, 2, 5, 3, 9, 2, 2, 3, 9, 2, 5, 10, 8, 2, 6, 6, 3, 3, 3, 2, 5, 2, 2, 3, 2, 2, 5, 5, 8, 5, 5, 8, 2, 3, 3, 3, 4, 2, 8, 5, 3, 3, 2, 9, 2, 5, 5, 3, 2, 3, 4, 5, 9, 2, 5, 3, 3, 3, 3, 3, 5, 5, 3, 5, 6, 4, 3, 2, 5, 7, 10, 2, 3, 9, 3, 3, 4, 2, 3, 2, 2, 2, 3, 2, 5, 2, 3, 3, 5, 6, 3, 2, 8, 2, 3, 2, 2, 9, 2, 3, 5, 2, 2, 5, 3, 9, 9, 6, 5, 2, 2, 7, 6, 3, 2, 6, 4, 4, 2, 3, 4, 6, 3, 6, 4, 8, 5, 3, 7, 3, 2, 3, 2, 3, 6, 2, 2, 3, 3, 5, 4, 2, 5, 6, 3, 2, 5, 5, 3, 5, 6, 2, 5, 3, 5, 3, 2, 5, 5, 3, 2, 8, 3, 3, 10, 3, 6, 9, 3, 2, 3, 3, 6, 5, 2, 2, 6, 2, 5, 2, 9, 3, 2, 2, 6, 2, 3, 2, 3, 3, 8, 9, 3, 9, 10, 2, 6, 2, 3, 2, 6, 5, 3, 2, 7, 8, 5, 8, 8, 7, 3, 3, 5, 3, 5, 2, 5, 7, 4, 9, 3, 2, 6, 3, 3, 2, 2, 5, 3, 4, 2, 5, 7, 2, 2, 6, 7, 3, 3, 3, 5, 3, 9, 3, 2, 5, 2, 2, 2, 2, 5, 3, 3, 2, 6, 5, 5, 6, 2, 2, 9, 2, 9, 2, 3, 2, 2, 2, 10, 2, 5, 3, 3, 3, 2, 5, 5, 2, 3, 5, 7, 2, 2, 3, 2, 6, 2, 3, 3, 10, 3, 4, 3, 2, 2, 3, 3, 5, 2, 9, 3, 3, 2, 3, 3, 9, 7, 2, 9, 3, 9, 2, 9, 9, 3, 5, 4, 9, 3, 3, 2, 5, 4, 3, 2, 3, 2, 3, 2, 3, 9, 4, 5, 2, 9, 6, 2, 2, 5, 3, 6, 9, 5, 2, 3, 9, 3, 2, 2, 2, 6, 8, 5, 5, 2, 8, 2, 2, 2, 3, 5, 2, 2, 6, 6, 8, 3, 3, 3, 2, 2, 9, 3, 4, 7, 2, 3, 5, 5, 7, 3, 4, 4, 9, 8, 2, 3, 5, 5, 5, 2, 3, 3, 5, 2, 2, 3, 5, 4, 3, 7, 5, 3, 2, 3, 3, 3, 10, 4, 2, 2, 5, 3, 3, 4, 9, 4, 2, 3, 3, 3, 3, 9, 2, 2, 2, 9, 9, 5, 2, 3, 4, 3, 8, 5, 2, 5, 4, 2, 3, 4, 7, 8, 5, 4, 8, 5, 3, 3, 2, 2, 2, 7, 3, 6, 5, 2, 9, 3, 9, 3, 7, 2, 2, 9, 7, 2, 5, 5, 3, 6, 10, 4, 2, 6, 3, 5, 3, 7, 3, 5, 5, 6, 3, 9, 3, 3, 9, 3, 5, 3, 7, 2, 2, 7, 6, 2, 6, 2, 2, 2, 7, 10, 2, 2, 2, 5, 2, 3, 3, 6, 2, 6, 5, 3, 7, 3, 2, 2, 2, 5, 3, 5, 2, 8, 3, 7, 5, 5, 2, 5, 9, 6, 9, 5, 2, 2, 2, 5, 4, 6, 5, 8, 2, 5, 7, 5, 6, 5, 2, 5, 6, 3, 5, 5, 4, 3, 3, 4, 2, 2, 3, 9, 6, 6, 3, 3, 3, 9, 6, 3, 2, 2, 8, 2, 7, 5, 2, 3, 4, 3, 5, 4, 9, 3, 3, 6, 5, 2, 3, 3, 3, 7, 2, 9, 3, 3, 3, 3, 3, 8, 2, 9, 5, 3, 3, 6, 3, 2, 3, 3, 3, 3, 2, 2, 5, 3, 2, 3, 7, 2, 5, 2, 7, 7, 6, 2, 2, 5, 2, 5, 2, 3, 2, 2, 3, 5, 3, 3, 2, 5, 3, 7, 8, 7, 5, 9, 2, 3, 2, 3, 7, 7, 5, 2, 2, 4, 2, 2, 5, 5, 3, 2, 3, 2, 3, 3, 2, 3, 3, 2, 5, 4, 4, 3, 3, 3, 5, 2, 9, 7, 2, 2, 5, 3, 2, 3, 2, 4, 2, 2, 5, 4, 3, 5, 6, 5, 5, 5, 9, 2, 2, 2, 2, 5, 3, 3, 8, 5, 2, 3, 2, 2, 8, 5, 3, 3, 6, 5, 7, 3, 5, 2, 2, 9, 2, 3, 3, 3, 8, 5, 5, 2, 3, 3, 6, 2, 5, 3, 5, 2, 2, 3, 7, 7, 3, 2, 3, 2, 3, 8, 5, 9, 2, 2, 3, 3, 2, 2, 8, 3, 3, 10, 6, 6, 6, 3, 6, 4, 2, 6, 2, 5, 6, 5, 5, 6, 3, 2, 3, 3, 5, 2, 2, 2, 2, 9, 4, 2, 2, 3, 2, 5, 10, 4, 5, 3, 7, 5, 3, 3, 2, 5, 2, 5, 5, 2, 5, 3, 5, 7, 3, 9, 2, 3, 3, 3, 3, 2, 3, 6, 6, 3, 2, 2, 2, 3, 5, 5, 5, 2, 3, 2, 4, 3, 3, 5, 3, 3, 3, 2, 3, 2, 9, 2, 2, 2, 2, 4, 8, 3, 6, 8, 5, 8, 3, 2, 3, 5, 9, 2, 3, 2, 3, 6, 5, 9, 5, 2, 2, 2, 9, 3, 2, 2, 6, 6, 2, 5, 5, 3, 3, 8, 3, 3, 3, 2, 2, 3, 5, 2, 3, 3, 3, 9, 6, 9, 5, 3, 7, 5, 6, 3, 5, 4, 3, 3, 2, 5, 5, 3, 5, 6, 2, 6, 2, 9, 4, 3, 2, 2, 4, 3, 2, 3, 3, 3, 2, 7, 8, 2, 5, 2, 9, 3, 10, 6, 9, 3, 6, 3, 5, 9, 3, 7, 5, 9, 5, 2, 3, 2, 9, 6, 3, 3, 5, 2, 9, 4, 3, 6, 3, 2, 9, 3, 4, 2, 2, 9, 2, 8, 5, 2, 5, 3, 3, 7, 2, 2, 5, 9, 5, 2, 2, 3, 3, 5, 2, 3, 6, 3, 5, 3, 2, 2, 3, 7, 3, 3, 8, 9, 3, 2, 2, 2, 3, 9, 6, 3, 4, 8, 6, 3, 2, 2, 3, 3, 3, 5, 3, 2, 2, 2, 3, 3, 3, 6, 5, 2, 2, 10, 2, 5, 2, 2, 3, 3, 3, 3, 8, 9, 3, 5, 3, 3, 9, 3, 9, 2, 2, 5, 2, 3, 9, 6, 2, 3, 4, 9, 3, 6, 7, 5, 2, 3, 3, 3, 3, 2, 4, 3, 3, 2, 6, 3, 2, 3, 5, 5, 2, 3, 3, 2, 2, 3, 2, 7, 8, 9, 6, 7, 3, 3, 3, 2, 4, 5, 7, 9, 3, 3, 4, 9, 3, 3, 2, 2, 2, 5, 3, 2, 2, 9, 5, 3, 3, 3, 5, 4, 5, 6, 3, 3, 2, 2, 3, 5, 3, 9, 10, 5, 3, 3, 2, 5, 2, 3, 7, 5, 3, 6, 2, 5, 3, 3, 2, 2, 2, 5, 5, 5, 5, 3, 3, 9, 8, 9, 2, 3, 3, 4, 5, 3, 2, 2, 2, 3, 4, 3, 8, 6, 2, 5, 5, 9, 3, 7, 2, 7, 3, 2, 5, 3, 3, 2, 7, 3, 3, 5, 3, 9, 3, 3, 3, 8, 8, 2, 10, 2, 2, 2, 4, 4, 4, 2, 9, 5, 9, 5, 5, 3, 3, 7, 3, 5, 6, 5, 3, 9, 2, 3, 5, 2, 2, 5, 3, 6, 3, 5, 2, 5, 5, 8, 5, 3, 2, 9, 3, 2, 5, 3, 2, 3, 10, 2, 9, 3, 6, 2, 2, 3, 9, 5, 5, 8, 7, 2, 3, 3, 2, 3, 9, 9, 2, 3, 3, 9, 3, 3, 5, 2, 3, 2, 6, 7, 2, 2, 10, 2, 6, 10, 2, 7, 3, 3, 5, 3, 3, 8, 3, 4, 5, 5, 3, 3, 3, 4, 2, 2, 5, 7, 2, 2, 8, 9, 5, 3, 3, 10, 2, 2, 2, 5, 5, 3, 4, 9, 6, 2, 6, 3, 4, 3, 3, 5, 6, 2, 2, 3, 2, 3, 4, 6, 4, 5, 3, 3, 5, 3, 2, 2, 2, 2, 2, 5, 2, 3, 5, 2, 6, 3, 8, 3, 2, 2, 3, 8, 6, 2, 5, 3, 3, 3, 3, 2, 2, 5, 5, 10, 2, 3, 7, 2, 10, 5, 5, 2, 4, 5, 5, 3, 3, 9, 2, 2, 10, 3, 2, 9, 5, 3, 2, 2, 10, 3, 2, 2, 5, 4, 4, 2, 5, 2, 3, 10, 2, 3, 2, 4, 5, 3, 2, 3, 8, 7, 4, 4, 2, 9, 2, 3, 10, 7, 2, 2, 3, 2, 2, 2, 7, 3, 6, 3, 5, 3, 5, 3, 7, 2, 3, 3, 2, 2, 5, 8, 5, 5, 3, 7, 8, 3, 8, 3, 8, 2, 9, 2, 10, 2, 5, 5, 2, 5, 5, 3, 2, 2, 6, 10, 3, 8, 2, 3, 3, 9, 3, 2, 6, 5, 5, 2, 5, 3, 6, 3, 9, 3, 7, 3, 3, 3, 4, 2, 3, 5, 6, 6, 4, 5, 8, 2, 5, 5, 2, 2, 3, 3, 2, 2, 3, 4, 5, 2, 5, 3, 3, 2, 3, 6, 6, 5, 2, 2, 2, 4, 3, 4, 9, 5, 2, 5, 3, 2, 5, 5, 3, 5, 3, 2, 3, 2, 3, 5, 3, 9, 2, 3, 5, 2, 10, 2, 5, 2, 2, 3, 3, 7, 4, 2, 3, 2, 8, 3, 5, 3, 5, 5, 3, 3, 5, 7, 3, 2, 4, 3, 2, 4, 4, 9, 7, 2, 6, 5, 3, 3, 3, 7, 9, 2, 7, 7, 2, 6, 2, 5, 2, 2, 6, 6, 7, 5, 2, 5, 2, 5, 2, 2, 5, 3, 4, 9, 3, 2, 8, 2, 8, 5, 3, 5, 3, 2, 7, 3, 7, 2, 2, 3, 2, 5, 2, 3, 5, 5, 4, 5, 3, 2, 2, 4, 6, 3, 2, 5, 2, 2, 6, 9, 5, 10, 3, 2, 8, 6, 3, 5, 6, 3, 3, 9, 3, 2, 5, 3, 6, 3, 2, 3, 3, 6, 3, 5, 2, 2, 4, 2, 5, 2, 3, 2, 5, 3, 9, 2, 2, 3, 6, 5, 3, 7, 3, 2, 2, 2, 6, 5, 2, 10, 6, 3, 2, 3, 5, 3, 5, 7, 3, 2, 3, 9, 2, 2, 9, 2, 4, 4, 2, 2, 2, 3, 2, 3, 3, 3, 2, 2, 4, 3, 7, 2, 3, 3, 3, 2, 5, 3, 3, 2, 3, 7, 2, 3, 2, 8, 3, 7, 2, 2, 2, 9, 3, 7, 5, 5, 7, 2, 2, 9, 5, 8, 2, 2, 2, 3, 2, 6, 2, 3, 5, 2, 7, 3, 3, 2, 8, 2, 2, 6, 5, 6, 3, 4, 2, 2, 10, 5, 3, 2, 3, 7, 3, 5, 5, 9, 5, 2, 2, 5, 3, 2, 2, 3, 3, 2, 5, 3, 9, 2, 5, 5, 10, 5, 3, 5, 4, 2, 2, 2, 3, 7, 9, 5, 3, 5, 2, 5, 2, 7, 2, 9, 5, 2, 10, 3, 5, 5, 5, 3, 9, 9, 3, 5, 3, 9, 3, 5, 3, 3, 9, 6, 3, 5, 6, 3, 5, 5, 3, 5, 3, 2, 4, 10, 5, 3, 3, 3, 4, 5, 2, 2, 4, 2, 2, 3, 2, 3, 2, 2, 7, 2, 2, 8, 2, 3, 2, 7, 2, 3, 2, 5, 3, 5, 6, 3, 2, 3, 3, 8, 2, 2, 3, 6, 7, 3, 7, 3, 2, 6, 6, 6, 2, 3, 5, 2, 10, 2, 3, 2, 7, 9, 2, 5, 6, 3, 3, 2, 5, 3, 3, 2, 2, 9, 8, 3, 9, 5, 9, 3, 2, 3, 3, 2, 5, 3, 9, 5, 3, 5, 2, 9, 5, 3, 2, 3, 7, 9, 7, 4, 9, 6, 10, 5, 3, 5, 4, 5, 4, 2, 7, 5, 2, 2, 7, 5, 3, 2, 2, 5, 9, 7, 4, 2, 2, 5, 9, 9, 8, 3, 2, 6, 8, 2, 5, 2, 2, 2, 2, 3, 6, 10, 3, 9, 2, 3, 8, 5, 4, 2, 9, 4, 2, 8, 5, 2, 3, 7, 2, 9, 5, 2, 4, 4, 3, 3, 10, 3, 3, 10, 2, 3, 2, 5, 2, 4, 2, 2, 2, 2, 2, 2, 5, 5, 5, 2, 2, 3, 3, 3, 2, 6, 3, 5, 9, 8, 4, 3, 2, 5, 5, 3, 5, 2, 3, 5, 3, 2, 3, 3, 3, 3, 7, 3, 2, 2, 3, 5, 5, 4, 3, 2, 5, 4, 5, 3, 3, 2, 5, 3, 7, 5, 4, 3, 4, 2, 9, 3, 5, 3, 3, 9, 5, 3, 2, 5, 10, 7, 3, 3, 3, 3, 3, 2, 5, 3, 3, 2, 3, 9, 2, 6, 2, 3, 9, 3, 2, 2, 4, 2, 3, 5, 2, 3, 9, 5, 2, 10, 2, 2, 3, 5, 3, 3, 9, 2, 3, 3, 6, 2, 8, 5, 8, 5, 6, 3, 3, 2, 2, 2, 8, 2, 2, 9, 3, 5, 2, 5, 6, 5, 7, 5, 6, 6, 2, 2, 2, 2, 3, 2, 2, 6, 3, 8, 3, 2, 6, 3, 5, 3, 3, 8, 3, 3, 3, 7, 2, 4, 2, 2, 3, 6, 5, 3, 2, 2, 2, 5, 5, 2, 2, 2, 2, 2, 5, 5, 3, 3, 2, 6, 2, 3, 9, 3, 8, 10, 3, 2, 5, 6, 3, 3, 2, 6, 3, 2, 3, 3, 2, 9, 3, 5, 5, 7, 5, 8, 3, 3, 7, 3, 3, 3, 3, 5, 2, 2, 2, 3, 3, 4, 5, 3, 8, 2, 6, 3, 2, 4, 9, 3, 4, 3, 2, 2, 2, 3, 3, 3, 5, 3, 5, 5, 2, 7, 9, 7, 3, 2, 3, 2, 2, 2, 4, 3, 6, 3, 2, 4, 4, 2, 5, 3, 8, 3, 3, 3, 5, 2, 6, 5, 3, 2, 5, 3, 5, 4, 3, 5, 9, 4, 5, 3, 3, 6, 5, 3, 2, 2, 2, 3, 6, 3, 2, 2, 5, 8, 2, 2, 9, 7, 5, 2, 2, 2, 2, 4, 5, 5, 6, 6, 2, 3, 5, 5, 2, 3, 2, 4, 5, 2, 3, 3, 8, 9, 2, 3, 3, 5, 2, 3, 2, 9, 2, 2, 3, 3, 2, 5, 2, 2, 3, 3, 5, 2, 2, 5, 8, 3, 8, 3, 2, 3, 2, 2, 3, 6, 2, 3, 5, 3, 2, 6, 2, 2, 3, 3, 5, 3, 3, 5, 2, 5, 9, 2, 6, 2, 4, 5, 2, 2, 2, 5, 6, 2, 5, 3, 9, 6, 5, 5, 8, 5, 6, 5, 2, 10, 9, 3, 3, 9, 3, 5, 7, 3, 5, 3, 5, 3, 5, 2, 3, 3, 5, 5, 3, 3, 8, 3, 5, 6, 6, 3, 6, 2, 5, 2, 3, 5, 7, 2, 9, 3, 9, 3, 3, 9, 2, 5, 3, 6, 2, 5, 2, 3, 5, 2, 5, 2, 9, 9, 2, 5, 3, 2, 3, 6, 3, 5, 5, 2, 2, 3, 5, 6, 2, 2, 3, 3, 5, 6, 3, 4, 9, 2, 4, 3, 2, 2, 5, 2, 8, 3, 2, 3, 5, 2, 5, 3, 10, 2, 4, 3, 2, 2, 9, 6, 6, 2, 8, 8, 2, 8, 3, 2, 4, 6, 3, 5, 5, 3, 5, 5, 6, 2, 2, 5, 5, 2, 3, 2, 4, 6, 2, 3, 2, 8, 8, 10, 7, 4, 5, 4, 2, 7, 5, 3, 2, 2, 2, 9, 6, 9, 6, 5, 9, 3, 3, 3, 5, 8, 2, 5, 4, 10, 10, 8, 2, 2, 5, 5, 3, 4, 3, 3, 2, 2, 3, 3, 2, 2, 10, 3, 3, 4, 2, 3, 2, 5, 2, 7, 2, 6, 6, 3, 5, 5, 4, 3, 3, 9, 5, 5, 3, 3, 2, 2, 2, 10, 2, 2, 2, 2, 2, 3, 5, 3, 5, 7, 5, 2, 5, 3, 5, 3, 2, 7, 3, 2, 2, 6, 9, 5, 5, 6, 9, 3, 6, 9, 2, 3, 3, 2, 2, 10, 7, 5, 3, 3, 5, 5, 7, 2, 5, 2, 2, 8, 5, 4, 10, 3, 3, 2, 2, 2, 5, 2, 3, 2, 2, 2, 2, 3, 10, 2, 5, 5, 3, 2, 2, 2, 7, 7, 5, 9, 2, 3, 8, 3, 5, 4, 3, 5, 4, 5, 5, 3, 9, 8, 8, 3, 5, 2, 7, 2, 2, 2, 3, 4, 5, 3, 5, 3, 6, 9, 3, 3, 3, 3, 2, 3, 10, 3, 3, 5, 8, 7, 2, 2, 6, 3, 3, 7, 2, 2, 5, 2, 2, 5, 3, 2, 5, 2, 3, 5, 2, 2, 3, 2, 2, 4, 7, 9, 5, 5, 6, 9, 2, 3, 10, 9, 3, 2, 3, 9, 5, 3, 9, 2, 5, 9, 5, 3, 8, 3, 2, 9, 3, 2, 2, 7, 3, 3, 7, 3, 2, 2, 3, 3, 2, 2, 3, 3, 3, 10, 2, 9, 3, 2, 4, 3, 3, 3, 2, 2, 5, 2, 3, 2, 2, 2, 5, 9, 6, 2, 3, 3, 3, 2, 3, 6, 2, 8, 8, 3, 3, 6, 7, 3, 2, 5, 6, 5, 3, 3, 3, 2, 5, 3, 5, 2, 3, 2, 9, 2, 10, 5, 7, 2, 4, 5, 3, 8, 3, 7, 7, 2, 2, 10, 5, 5, 3, 2, 2, 2, 6, 2, 9, 3, 8, 5, 6, 5, 7, 3, 3, 9, 3, 5, 3, 5, 2, 8, 7, 4, 9, 2, 5, 7, 2, 3, 2, 2, 2, 3, 7, 3, 2, 2, 2, 2, 5, 2, 3, 5, 4, 2, 3, 3, 6, 2, 5, 8, 4, 2, 3, 5, 6, 2, 3, 2, 10, 2, 5, 2, 5, 3, 3, 3, 3, 6, 2, 6, 7, 5, 2, 7, 3, 5, 7, 3, 5, 3, 10, 2, 10, 5, 3, 9, 3, 4, 4, 7, 3, 6, 3, 2, 5, 3, 2, 10, 6, 2, 3, 2, 9, 6, 4, 5, 5, 5, 3, 7, 3, 4, 2, 4, 5, 3, 6, 7, 6, 5, 8, 2, 2, 5, 3, 9, 3, 3, 2, 3, 5, 2, 2, 2, 5, 2, 2, 6, 2, 9, 2, 8, 3, 2, 10, 7, 8, 2, 2, 3, 4, 2, 3, 2, 8, 2, 2, 3, 3, 3, 2, 6, 2, 3, 6, 9, 3, 2, 5, 2, 3, 3, 3, 5, 2, 5, 2, 3, 5, 3, 2, 3, 2, 6, 5, 3, 3, 2, 5, 2, 5, 3, 9, 3, 3, 7, 5, 9, 2, 6, 2, 3, 3, 7, 3, 2, 4, 3, 3, 7, 3, 2, 4, 5, 2, 5, 3, 4, 2, 3, 2, 7, 9, 9, 2, 6, 9, 5, 3, 4, 2, 2, 5, 2, 3, 2, 2, 5, 5, 4, 2, 3, 3, 7, 5, 2, 2, 2, 8, 7, 3, 3, 3, 9, 5, 7, 5, 7, 6, 3, 6, 3, 5, 3, 10, 2, 3, 5, 2, 3, 6, 3, 8, 3, 10, 9, 10, 9, 3, 5, 2, 10, 3, 8, 8, 3, 4, 9, 2, 2, 6, 2, 5, 2, 2, 9, 10, 5, 3, 2, 3, 2, 2, 2, 3, 9, 6, 2, 2, 5, 8, 2, 3, 3, 3, 2, 5, 5, 3, 9, 4, 3, 6, 2, 3, 2, 5, 2, 2, 4, 3, 5, 2, 9, 2, 3, 4, 8, 4, 6, 3, 5, 10, 5, 9, 3, 5, 2, 6, 3, 2, 4, 3, 3, 8, 6, 5, 3, 2, 3, 9, 2, 5, 2, 2, 5, 5, 3, 5, 3, 9, 2, 5, 3, 3, 3, 5, 3, 4, 2, 6, 5, 3, 3, 2, 10, 8, 5, 5, 10, 4, 3, 3, 5, 5, 3, 5, 3, 3, 6, 5, 7, 5, 5, 7, 6, 2, 5, 3, 5, 6, 3, 4, 2, 6, 8, 2, 5, 2, 3, 2, 3, 5, 3, 2, 5, 6, 3, 4, 5, 2, 3, 6, 3, 3, 2, 9, 9, 2, 2, 2, 2, 3, 6, 3, 3, 7, 4, 2, 5, 5, 3, 2, 2, 8, 5, 7, 2, 2, 5, 9, 9, 2, 5, 3, 4, 2, 5, 5, 2, 4, 5, 3, 6, 2, 9, 8, 6, 9, 5, 3, 7, 6, 9, 3, 3, 3, 5, 10, 3, 5, 5, 2, 3, 3, 7, 2, 6, 3, 2, 3, 10, 2, 2, 5, 3, 5, 10, 5, 5, 2, 5, 3, 5, 2, 3, 8, 5, 5, 3, 3, 3, 3, 9, 3, 2, 2, 10, 2, 3, 2, 9, 3, 5, 2, 9, 2, 3, 3, 5, 2, 3, 2, 2, 2, 8, 4, 9, 3, 2, 3, 3, 3, 4, 3, 3, 5, 6, 3, 2, 3, 8, 3, 3, 4, 3, 5, 6, 2, 2, 3, 2, 8, 8, 8, 7, 2, 8, 3, 5, 6, 5, 7, 2, 9, 6, 3, 3, 5, 2, 5, 2, 2, 3, 5, 5, 2, 3, 2, 3, 6, 9, 2, 3, 2, 5, 2, 5, 5, 3, 2, 7, 3, 6, 3, 6, 5, 4, 3, 5, 5, 3, 5, 8, 2, 6, 2, 5, 6, 5, 2, 5, 3, 9, 2, 2, 4, 2, 2, 2, 2, 5, 9, 2, 6, 6, 3, 3, 3, 3, 2, 3, 4, 3, 2, 6, 6, 3, 3, 10, 2, 2, 2, 5, 2, 2, 3, 4, 2, 8, 8, 2, 6, 9, 5, 6, 3, 5, 3, 3, 7, 3, 2, 7, 2, 9, 5, 2, 3, 4, 3, 3, 3, 3, 5, 6, 5, 3, 3, 5, 6, 5, 5, 3, 8, 5, 9, 4, 2, 6, 2, 5, 9, 9, 7, 7, 6, 7, 2, 9, 4, 3, 4, 6, 3, 5, 2, 2, 3, 10, 9, 5, 2, 9, 2, 5, 2, 3, 9, 3, 8, 5, 7, 3, 2, 5, 3, 2, 2, 3, 2, 4, 5, 7, 3, 5, 5, 3, 3, 3, 5, 5, 7, 3, 5, 2, 2, 4, 2, 6, 2, 2, 3, 2, 2, 2, 4, 7, 9, 3, 3, 2, 2, 3, 5, 5, 2, 6, 3, 7, 5, 2, 3, 3, 3, 5, 8, 2, 2, 2, 2, 9, 2, 5, 2, 5, 8, 2, 6, 5, 2, 3, 3, 2, 3, 6, 3, 4, 6, 2, 10, 3, 2, 6, 3, 4, 6, 2, 3, 6, 2, 7, 3, 3, 7, 3, 4, 7, 5, 9, 10, 2, 3, 2, 3, 3, 9, 5, 6, 3, 9, 5, 3, 3, 3, 5, 5, 2, 7, 2, 2, 5, 3, 2, 7, 5, 5, 5, 9, 2, 8, 3, 2, 6, 3, 5, 3, 8, 2, 3, 5, 6, 6, 9, 2, 5, 5, 3, 6, 3, 3, 7, 3, 8, 7, 2, 3, 5, 9, 2, 2, 8, 3, 9, 2, 4, 5, 3, 10, 7, 2, 2, 5, 2, 5, 2, 2, 2, 5, 9, 5, 3, 5, 4, 9, 3, 5, 2, 3, 6, 2, 2, 4, 4, 2, 3, 2, 5, 5, 3, 2, 3, 3, 3, 4, 2, 3, 3, 3, 9, 3, 2, 4, 2, 3, 2, 3, 3, 3, 2, 5, 2, 3, 8, 2, 3, 9, 4, 7, 5, 4, 2]\n"
     ]
    }
   ],
   "source": [
    "path = '../dist/train_data_full.pkl'\n",
    "if model_exist(path):\n",
    "    print(\"load model from \", path)\n",
    "    df = load_model(path)\n",
    "else:\n",
    "    print(\"start data conversion\")\n",
    "    df = pandasutils.convert2KeywordsDataframs(data.values)\n",
    "    save_model(df, path)\n",
    "    \n",
    "print(df[\"X\"])\n",
    "print(df[\"y\"])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
